package neuroBot.exploit.party;

import neuroBot.bot.party.Main;
import neuroBot.exploit.Exploiter;
import neuroBot.exploit.KostenReader;
import neuroBot.poker.BotTisch;
import eleTrain.eleDBReader.EleHHParty;

public class ExploiterParty extends Exploiter {

	KostenReader kostenReader = new KostenReaderColor();

	@Override
	public void setTisch(int tnr) {
		BotTisch tisch = new BotTisch("BotTisch: " + tnr, tnr);
		EleHHParty hh = PPHandHistoryReader.getHandHistory(tnr, tisch);
		hh.parse();
		System.out.println(hh.spieler);
		tisch.setInfo(hh);

		Main.botTische[tnr] = tisch;
		Main.botSpieler[tnr] = tisch.getSpiel().getSpielerByName("mobaras");
	}

	public void setTische() {
		for (int i = 0; i < Main.anzTables; i++) {
			BotTisch tisch = new BotTisch("BotTisch: " + i, i);
			EleHHParty hh = PPHandHistoryReader.getHandHistory(i, tisch);
			tisch.setInfo(hh);
			Main.botTische[i] = tisch;
			Main.botSpieler[i] = tisch.getSpiel().getSpielerByName("mobaras");
		}
	}

	public int getTnrToAct() {
		for (int i = 0; i < Main.anzTables; i++)
			if (isTurnToAct(i))
				return i;
		return -1;

	}

	public boolean isTurnToAct(int tnr) {
		return (kostenReader.getKosten(tnr) >= 0);
	}

	public boolean shouldClickWaitForBB(int tnr) {
		return (kostenReader.getKosten(tnr) == -3);
	}

	public int getKosten(int tnr) {
		return kostenReader.getKosten(tnr);
	}

	public boolean isOut(int tnr) {
		return (kostenReader.getKosten(tnr) == -2 || kostenReader
				.getKosten(tnr) == -12);
	}

	public boolean isBBAnyWhere() {
		for (int i = 0; i < Main.anzTables; i++) {
			BotTisch tisch = Main.botTische[i];
			if (tisch.getSpiel().getBB().equals(Main.botSpieler[i]))
				return true;
		}
		return false;
	}

	// gibt true/false wenn waitlist ichtbar (d.h. bot sitzt nicht an tisch)
	public boolean isWaitList(int tnr) {
		return (kostenReader.getKosten(tnr) == -12);
	}

}
